// File:       hdeque.c++
// Version:    1.00
// Author:     (c) Alexander Thoukydides, 1998
// Purpose:    Instantiate templates for the deque class.
//             After including this file use
//
//               INSTANTIATE_DEQUE(T0)
//
//             to instantiate the templates for the specified
//             parameterisation
//
//               INSTANTIATE_DESTROY_DEQUE(T0)
//
//             to also define a destroy() function.

// Include CathLibCPP header files
#include "tpltutil.h"

// Include CathLibCPP source code files
#ifndef cathlibcpp_hoistbp_CPP
#define cathlibcpp_hoistbp_CPP
#include "hoistbp.c++"
#endif
#ifndef cathlibcpp_hoistctdt_CPP
#define cathlibcpp_hoistctdt_CPP
#include "hoistctdt.c++"
#endif
#ifndef cathlibcpp_deque_CPP
#define cathlibcpp_deque_CPP
#include "deque.c++"
#endif

// Define macros to instantiate the templates
#define INSTANTIATE_DEQUE(T0) \
    INSTANTIATE_CLASS_1(deque, T0)
#define INSTANTIATE_DESTROY_DEQUE(T0) \
    inline void destroy( T0 *p) \
    { p->~T0(); } \
    INSTANTIATE_CLASS_1(deque, T0)
